/**
 * * 题目名称：文件夹操作日志搜集器
 * * 题目地址：https://leetcode-cn.com/problems/crawler-log-folder
 */

// * 思路：利用栈，判断为../时，pop；判断为./时，不变；判断为x/时，push。

/*
题目：
每当用户执行变更文件夹操作时，LeetCode 文件系统都会保存一条日志记录。

下面给出对变更操作的说明：
"../" ：移动到当前文件夹的父文件夹。如果已经在主文件夹下，则 继续停留在当前文件夹 。
"./" ：继续停留在当前文件夹。
"x/" ：移动到名为 x 的子文件夹中。题目数据 保证总是存在文件夹 x 。
给你一个字符串列表 logs ，其中 logs[i] 是用户在 ith 步执行的操作。
文件系统启动时位于主文件夹，然后执行 logs 中的操作。
执行完所有变更文件夹操作后，请你找出 返回主文件夹所需的最小步数 。
*/

/**
 * @param {string[]} logs
 * @return {number}
 */
 var minOperations = function(logs) {
     var arr = [];
    logs.forEach(function(value){
        switch(value){
            case "../":
                arr.pop();
                break;
            case "./":
                break;
            default:
                arr.push(value);    
        }
    })
    return arr.length;
};

// 测试用例
let test = ["d1/","../","../","../"];

console.time('执行用时');
console.log(minOperations(test));
console.timeEnd('执行用时');